Thread ক্লাস এবং Runnable ইন্টারফেসের ভূমিকা

Java Technologies - Java.lang প্যাকেজ (Java.lang Package) - Thread এবং Runnable ইন্টারফেস
244

Java তে multithreading বা একাধিক থ্রেড ব্যবহারের মাধ্যমে একাধিক কাজ একসাথে সম্পন্ন করা যায়। Thread ক্লাস এবং Runnable ইন্টারফেস দুটি মূল উপাদান যা থ্রেড তৈরি এবং পরিচালনার জন্য ব্যবহৃত হয়। এই দুটি ক্লাস/ইন্টারফেস Java-এ মাল্টিথ্রেডিং সিস্টেম তৈরি করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।

1. Thread ক্লাস

Thread ক্লাস Java তে মাল্টিথ্রেডিং পরিচালনা করার জন্য একটি প্রধান ক্লাস। এই ক্লাসের মাধ্যমে আপনি থ্রেড তৈরি এবং চালনা করতে পারেন। Thread ক্লাস সরাসরি java.lang প্যাকেজে অন্তর্ভুক্ত রয়েছে এবং এটি থ্রেডের সাথে সম্পর্কিত অনেক মেথড সরবরাহ করে।

Thread ক্লাসের ভূমিকা:

  • Thread creation: Thread ক্লাস ব্যবহার করে আপনি থ্রেড তৈরি করতে পারেন এবং সেই থ্রেডের কার্যকারিতা পরিচালনা করতে পারেন।
  • Thread execution: Thread ক্লাস run() মেথড ব্যবহার করে থ্রেডের কাজ নির্ধারণ করতে সাহায্য করে।
  • Thread states management: Thread ক্লাস থ্রেডের স্টেট ম্যানেজমেন্ট (যেমন, start(), sleep(), join(), interrupt()) পরিচালনা করতে সাহায্য করে।

Thread ক্লাসের উদাহরণ:

class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("Thread is running");
    }
}

public class ThreadExample {
    public static void main(String[] args) {
        MyThread thread = new MyThread(); // Create a new thread
        thread.start(); // Start the thread
    }
}
  • এখানে, MyThread ক্লাস Thread ক্লাস থেকে ইনহেরিটেড এবং run() মেথড ওভাররাইড করা হয়েছে।
  • start() মেথড কল করার মাধ্যমে থ্রেডটি শুরু হয় এবং run() মেথডটি কল হয়।

2. Runnable ইন্টারফেস

Runnable ইন্টারফেস Java তে মাল্টিথ্রেডিং করার জন্য একটি ফাংশনাল ইন্টারফেস। এটি সাধারণত ব্যবহার করা হয় যখন আপনি থ্রেড তৈরি করতে চান তবে Thread ক্লাসের বাইরেও কাজ করতে চান। আপনি একটি ক্লাসে Runnable ইন্টারফেস ইমপ্লিমেন্ট করে এবং তারপরে থ্রেড চালু করতে পারেন।

Runnable ইন্টারফেসের ভূমিকা:

  • Thread execution: Runnable ইন্টারফেসের run() মেথডটি থ্রেডের কাজ নির্ধারণ করে।
  • Thread creation: এটি Thread ক্লাসের মধ্যে Runnable অবজেক্টকে পাস করে থ্রেড তৈরি করার সুযোগ দেয়।
  • Flexibility: Runnable ইন্টারফেস ব্যবহার করলে একটি ক্লাস একাধিক ক্লাসের সাথে ইনহেরিট করতে পারে, যা Thread ক্লাসের ক্ষেত্রে সম্ভব নয় (কেননা Thread ক্লাস নিজেই একটি ক্লাস এবং একাধিক ক্লাস ইনহেরিট করা সম্ভব নয়)।

Runnable ইন্টারফেসের উদাহরণ:

class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("Runnable is running");
    }
}

public class RunnableExample {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable(); // Create a new Runnable object
        Thread thread = new Thread(myRunnable);  // Create a new Thread and pass Runnable object
        thread.start(); // Start the thread
    }
}
  • এখানে, MyRunnable ক্লাস Runnable ইন্টারফেস ইমপ্লিমেন্ট করে এবং run() মেথডের মধ্যে থ্রেডের কাজ প্রদান করা হয়েছে।
  • Thread ক্লাসের কন্সট্রাক্টরকে Runnable অবজেক্ট পাস করে থ্রেড তৈরি করা হয় এবং তারপর start() মেথড কল করা হয়।

Thread এবং Runnable এর মধ্যে পার্থক্য:

বৈশিষ্ট্যThread ক্লাসRunnable ইন্টারফেস
InheritanceThread ক্লাস একটি কনক্রিট ক্লাস, সুতরাং এটি শুধুমাত্র একটি ক্লাস থেকেই ইনহেরিট করা যেতে পারে।Runnable একটি ইন্টারফেস, যেটি একাধিক ক্লাসে ইমপ্লিমেন্ট করা যেতে পারে।
Thread CreationThread ক্লাস ইনস্ট্যান্স তৈরি এবং run() মেথড ওভাররাইড করে থ্রেড তৈরি করা যায়।Runnable ইন্টারফেস ইমপ্লিমেন্ট করে run() মেথড তৈরি করতে হয় এবং Thread অবজেক্টে পাস করে থ্রেড তৈরি করা যায়।
Flexibilityথ্রেড তৈরি করতে Thread ক্লাসের বাইরের কোনো ক্লাসের সাথে একসাথে কাজ করা যায় না।একাধিক ইন্টারফেস বা সুপারক্লাস থেকে ইনহেরিট করা যেতে পারে, তাই এটি বেশি নমনীয়।
PerformanceThread ক্লাসটি একটু কম নমনীয়, কারণ এটি একটি ক্লাস এবং একাধিক ক্লাস ইনহেরিট করা সম্ভব নয়।Runnable বেশি পারফরম্যান্সফুল, কারণ এটি একাধিক ক্লাস ইনহেরিট বা ইমপ্লিমেন্ট করা যেতে পারে।
Thread ControlThread ক্লাসে থ্রেড নিয়ন্ত্রণের জন্য কিছু built-in মেথড থাকে, যেমন sleep(), join(), interrupt()Runnable ইন্টারফেসে শুধুমাত্র run() মেথড থাকে; থ্রেড নিয়ন্ত্রণের জন্য Thread ক্লাসের মেথড ব্যবহার করতে হয়।

Thread এবং Runnable ব্যবহার করা:

  • Thread Class ব্যবহৃত হয় যখন আপনি সরাসরি থ্রেড তৈরি এবং পরিচালনা করতে চান।
  • Runnable Interface ব্যবহৃত হয় যখন আপনি থ্রেড কাজের জন্য কোডটি পুনঃব্যবহারযোগ্য এবং বেশি নমনীয় রাখতে চান, এবং যখন আপনি একাধিক ক্লাস থেকে থ্রেডের কার্যকলাপ করতে চান।

Thread Class ব্যবহার:

class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("Thread is running");
    }
}

public class ThreadExample {
    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.start();
    }
}

Runnable Interface ব্যবহার:

class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("Runnable is running");
    }
}

public class RunnableExample {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start();
    }
}
  • Thread ক্লাস এবং Runnable ইন্টারফেস উভয়ই থ্রেড তৈরি এবং পরিচালনা করতে ব্যবহৃত হয়, তবে তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে।
  • Thread ক্লাস এককভাবে একটি থ্রেড তৈরি করতে ব্যবহার করা হয়, তবে Runnable ইন্টারফেস আরও নমনীয় এবং একাধিক ক্লাসের সাথে ব্যবহার করা যায়। Runnable ইন্টারফেস ব্যবহার করে আপনি একাধিক ফিচার ইমপ্লিমেন্ট করতে পারেন, এবং এটি performance দিক থেকেও কিছুটা বেশি সুবিধাজনক।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...